package com.scheduling.material.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.scheduling.material.dto.MaterialQueryDTO;
import com.scheduling.material.entity.Material;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 原料数据访问层
 *
 * @author 开发团队
 * @since 2025-05-29
 */
@Mapper
public interface MaterialMapper extends BaseMapper<Material> {

    /**
     * 分页查询原料列表
     *
     * @param page     分页对象
     * @param queryDTO 查询条件
     * @return 原料分页列表
     */
    IPage<Material> selectMaterialPage(Page<Material> page, @Param("query") MaterialQueryDTO queryDTO);

    /**
     * 检查原料名称是否存在
     *
     * @param materialName 原料名称
     * @param excludeId    排除的ID（用于更新时检查）
     * @return 存在的数量
     */
    Integer checkMaterialNameExists(@Param("materialName") String materialName, @Param("excludeId") String excludeId);
} 